/**
 * 
 */
package temp;

import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.util.Date;
import java.util.List;

import javax.jws.WebService;

import temp.model.information.ProjectInfo;
import temp.model.information.dto.ProjectInfoDto;

import com.hanhai.zrb.model.common.SysDictionary;
import com.hanhai.zrb.model.project.CityInfo;
import com.hanhai.zrb.model.project.vo.MyProjectInfoVo;

/**
 * @author tino
 *
 */
//@WebService
public interface ProjectInfoQueryFacade {


	/** 
	 * @Title: getProVoByAutoId 
	 * @Description: TODO(Hbase-mysql 联合查询) 
	 * @param id
	 * @return ProjectInfoQueryResult(返回类型 ) 
	 * @throws 
	 */ 
	public ProjectInfoQueryResult getProVoByAutoId(int id);
	
	/** 
	 * @Title: getProByAutoId 
	 * @Description: TODO(查询单个项目信息--mysql) 
	 * @param id
	 * @return ProjectInfoQueryResult(返回类型 ) 
	 * @throws 
	 */ 
	public ProjectInfoQueryResult getProByAutoId(int id);
	public ProjectInfoQueryResult getProByProjectId(String projectId);
	public ProjectInfoQueryResult queryProjectApiList(ProjectInfoDto projectInfoDto,int limit,String tradeDate);
	
	List<ProjectInfoVo> queryProBannerByHotpointList(List<HotPointVo> list);
	
	public ProjectInfoQueryResult queryProjectBannerApiList(ProjectInfoDto projectInfoDto,int limit,String tradeDate);
	
	public String queryPageByCondition(ProjectInfoDto projectInfoDto); 
	
	public Integer queryCountByProName(String projectName);
	

	
	public List<SysDictionary> getDicByCode(String parentCode); 
	
	//public Map updateStatus(String id,int status); 
	
	public List<CityInfo> findAllProvince();
	
	public List<CityInfo> findChildCity(Integer topId);
	
	public String updateStatus(String id,int status); 
	
	/**
	 * 批量获取收藏项目信息
	 * 传入收藏项目的idlist
	 * 返回ProjectVoList
	 * 
	 * @param idList
	 * @return
	 */
	List<ProjectInfoVo> getProjectInfoVoByIdListForCollectionView(List<Long> idList);
	
	public CityInfo findByCityName(String cityName);
	
	public CityInfo findByParentName(String proName,String cityName,String countryName);
	
	public int saveProject(ProjectInfo project);
	
	public void updateProject(ProjectInfo project);
	
	public void associateMember(Integer projectId,List<String> userIds,Integer refType);
	
	public List<MyProjectInfoVo> queryMyProjectList(Date insertTime,boolean forward,Integer userId,Integer limit) 
			throws IllegalAccessException, InvocationTargetException;
	
	
	public List<ProjectInfo> getProjectByNameAndStatus(String name,Integer status);
	
	
	
	public List<ProjectInfoVo> getByIdList(List<Integer> list);
	

	List<ProjectInfoVo> listAll();
	
	
}
